#pragma once


struct FVector
{
float x;
float y;
float z;

void operator=(FVector &in)
{

	x=in.x;
	y=in.y;
	z=in.z;
};

};

const int xSize=64;
const int ySize=64;
const int zSize=64;

class VectorField
{
public:
	float deltaT;
	float maxMag;
	float minMag;

	float overall;

	int colorSize;

	int *colorS;
	float *colorCount;


	struct FVector vectorField[xSize*ySize*zSize];
	static VectorField &getSingleton()
	{
		static VectorField obj;
		return obj;
	}
	void init();

	void getColor(float value,int color[]);

	FVector getVector(float x,float y,float z);

	void getColorByDir(float x,float y,float z,int color[]);

	void generateMagnitudeField(float *field);
private:
	VectorField(void);
	~VectorField(void);
};
